/*
 * Powered By [rapid-framework]
 * Web Site: http://www.rapid-framework.org.cn
 * Google Code: http://code.google.com/p/rapid-framework/
 * Since 2008 - 2012
 */

package com.zoio.saike.service;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;

import java.util.*;

import javacommon.base.*;
import javacommon.util.*;

import cn.org.rapid_framework.util.*;
import cn.org.rapid_framework.web.util.*;
import cn.org.rapid_framework.page.*;
import cn.org.rapid_framework.page.impl.*;

import com.zoio.saike.model.*;
import com.zoio.saike.dao.*;
import com.zoio.saike.service.*;
import com.zoio.saike.vo.query.*;

/**
 * @author Bryan@ZOIO.NET
 */

@Service
@Transactional
public class AmFileManager extends BaseManager<AmFile,java.lang.String>{

	private AmFileDao amFileDao;
	/**增加setXXXX()方法,spring就可以通过autowire自动设置对象属性,请注意大小写*/
	public void setAmFileDao(AmFileDao dao) {
		this.amFileDao = dao;
	}
	
	public EntityDao getEntityDao() {
		return this.amFileDao;
	}
	
	/** */
	public AmFile createAmFile(AmFile amFile) {
	    Assert.notNull(amFile,"'amFile' must be not null");
	    initDefaultValuesForCreate(amFile);
	    new AmFileChecker().checkCreateAmFile(amFile);
	    this.amFileDao.save(amFile);
	    return amFile;
	}
	
    public AmFile updateAmFile(AmFile amFile) {
        Assert.notNull(amFile,"'amFile' must be not null");
        new AmFileChecker().checkUpdateAmFile(amFile);
        this.amFileDao.update(amFile);
        return amFile;
    }	

    public void deleteAmFileById(java.lang.String id) {
        Assert.notNull(id,"'id' must be not null");
        this.amFileDao.deleteById(id);
    }
    
    public AmFile getAmFileById(java.lang.String id) {
        Assert.notNull(id,"'id' must be not null");
        return this.amFileDao.getById(id);
    }
    
	@Transactional(readOnly=true)
	public Page findPage(AmFileQuery query) {
	    Assert.notNull(query,"'query' must be not null");
		return amFileDao.findPage(query);
	}
	
    
    public void initDefaultValuesForCreate(AmFile v) {
    }
    
    public class AmFileChecker {
        /**可以在此检查只有更新才需要的特殊检查 */
        public void checkUpdateAmFile(AmFile v) {
            checkAmFile(v);
        }
    
        /**可以在此检查只有创建才需要的特殊检查 */
        public void checkCreateAmFile(AmFile v) {
            checkAmFile(v);
        }
        
        /** 检查到有错误请直接抛异常，不要使用 return errorCode的方式 */
        public void checkAmFile(AmFile v) {
            //各个属性的检查一般需要分开写几个方法，如 checkProperty1(v),checkProperty2(v)
        }
    }
}
